﻿using AVIS.OutBound.Orders;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AVIS.OutBound.ThirdOrders
{
    /// <summary>
    /// 游友订单（现在修改为漫游包Wifi订单）的领域服务
    /// </summary>
    public interface IYouYouOrderManager
    {
        /// <summary>
        /// 判断是否存在指定ID的游友订单
        /// </summary>
        /// <returns></returns>
        bool IsExist(int youyouOrderID);

        /// <summary>
        /// 取消YouYou订单
        /// </summary>
        /// <param name="avisOrderNo">(必填)AVIS订单号</param>
        /// <returns></returns>
        bool CancelYouYouOrder(string avisOrderNo);

        /// <summary>
        /// 查询订单详信息
        /// </summary>
        /// <param name="avisOrderNo">(必填)AVIS订单号</param>
        /// <returns></returns>
        string GetOrder(string avisOrderNo);

        /// <summary>
        /// 获取游友产品（现在修改为漫游包Wifi）
        /// </summary>
        /// <returns></returns>
        AbroadWiFiProduct GetProducts(string country);

        /// <summary>
        /// 更改游友订单（现在修改为漫游包Wifi订单）的状态
        /// </summary>
        /// <param name="avisOrderNo"></param>
        /// <param name="youyouNo"></param>
        /// <returns></returns>
        bool UpdateStatusToCancel(string avisOrderNo, string youyouNo);

        /// <summary>
        /// 新插入游友订单（现在修改为漫游包Wifi订单）
        /// </summary>
        /// <param name="order">Avis订单</param>
        /// <returns></returns>
        bool SaveOrder(Order order, ThirdOrderModel thirdOrder);

        /// <summary>
        /// 获取漫游包Wifi订单的详情信息（本地DB）
        /// </summary>
        /// <param name="avisOrderNo">(必填)AVIS订单号</param>
        /// <returns></returns>
        YouYouOrder GetDBOrder(string avisOrderNo);
    }
}
